import { v3, Vec3 } from "cc";

/**
 * 向量工具类
 */
export class VecUtils{
    /**
     * 求入射方向的反射方向（入射方向和方向量都要求是单位向量）
     * @param incident 入射方向
     * @param normal 法向量
     * @returns 反射方向
     */
    public static getReflectionDirection(incident: Vec3, normal: Vec3): Vec3 {
        // 计算入射向量和法向量的点积
        const dotProduct = incident.dot(normal);
        // 计算反射向量
        const reflection = incident.subtract(normal.multiplyScalar(2 * dotProduct));
        return reflection;
    }
}